import pytest
import allure
from data.login_data import SUCCESS_LOGIN_DATA, FAIL_LOGIN_DATA

@allure.feature("登录功能")  # 定义功能模块
class TestLogin:
    """
    登录功能测试用例
    """

    @allure.story("成功登录")  # 定义用户场景
    @pytest.mark.parametrize("username, password", SUCCESS_LOGIN_DATA)
    def test_success_login(self, login_page, username, password):
        """
        测试成功登录
        """
        with allure.step("输入用户名"):
            login_page.enter_username(username)
        with allure.step("输入密码"):
            login_page.enter_password(password)
        with allure.step("点击登录"):
            login_page.click_login()
        # 这里可以添加断言，检查是否登录成功
        assert "登录成功" in login_page.driver.title

    @allure.story("失败登录")  # 定义用户场景
    @pytest.mark.parametrize("username, password, expected_error", FAIL_LOGIN_DATA)
    def test_fail_login(self, login_page, username, password, expected_error):
        """
        测试失败登录
        """
        with allure.step("输入用户名"):
            login_page.enter_username(username)
        with allure.step("输入密码"):
            login_page.enter_password(password)
        with allure.step("点击登录"):
            login_page.click_login()
        # 这里可以添加断言，检查错误信息是否正确
        assert expected_error in login_page.driver.page_source
